#ifndef VECTOR_3D_H
#define VECTOR_3D_H



class Vector;

struct Vector3D {
	Vector3D();
	Vector3D(const Vector &);
	Vector3D(double, double, double);
	~Vector3D();

    double &operator[](unsigned int);
	Vector3D &operator=(const Vector3D &);
	Vector3D operator*(double) const;
	Vector3D operator+(const Vector3D &) const;
	Vector3D operator-(const Vector3D &) const;
    Vector3D crossProduct(const Vector3D &) const;
    double dotProduct(const Vector3D &) const;
    Vector3D normalize() const;
    double length() const;
    double *intoVector() const;

	double x, y, z;
};

#endif
